package com.ido.otaclient.realtk;

import android.app.Activity;
import android.content.Intent;

import com.ido.otaclient.base.BasePresenter;
import com.ido.otaclient.base.BaseView;
import com.ido.otaclient.module.Veneer;
import com.ido.otaclient.nordic.NordicContract;

import java.util.List;

/**
 * Copyright (c) 2019 深圳市爱都科技有限公司. All rights reserved.
 *
 * @Author: xyb
 * @CreateDate: 2020-03-06 18:37
 * @description
 */
public interface RealtkContract {


    interface View extends BaseView<Presenter> {//UI
        /**
         * 显示加载框
         */
        void showLoading();

        /**
         * 隐藏弹框
         */
        void hideLoading();

        /**
         * 显示提示信息
         * @param message
         */
        void showMessage(String message);

        /**
         * 设置选择文件之后的图标
         */
        void setChooseDrawable();

        /**
         * 显示或隐藏选择文件名
         * @param isVisible
         */
        void showTvChooseFile(boolean isVisible);

        /**
         * 选择文件名
         * @param chooseFileName
         */
        void setTvChooseFileName(String chooseFileName);

        /**
         * 返回选择文件名称
         * @return
         */
        String getTvChooseFileName();

        /**
         * 获得选择文件版本信息
         * @return
         */
        String getChooseFileVersion();

        /**
         * 设置文件路径
         * @param path
         */
        void setFilePath(String path);

        /**
         * 获得文件的版本
         */
        void setFileVersion(String version);

        /**
         * 返回文件路径
         * @return
         */
        String getFilePath();

        /**
         * 返回上一个界面
         */
        void back();

        /**
         * 显示取消弹框
         */
        void showConfirmCancel();

        /**
         * 设置设备id
         * @param deviceId
         */
        void setDeviceId(String deviceId);

        /**
         * 获得设备id
         * @return
         */
        String getDeviceId();

        /**
         * 获得单板列表
         * @return
         */
        List<Veneer> getVeneerList();

        /**
         * 设置单板集合
         * @param veneerList
         */
        void setVeneerList(List<Veneer> veneerList);
    }
    interface Presenter extends BasePresenter {//功能

        /**
         * 上传固件固件名称与确认上传
         */
        void uploadAndConfirmFile();

        /**
         * 选择文件
         * @param requestCode
         */
        void chooseFile(int requestCode, Activity activity);

        /**
         * 选择文件回调
         * @param act
         * @param requestCode
         * @param resultCode
         * @param data
         */
        void onActivityResult(Activity act, int requestCode, int resultCode, Intent data);

        /**
         * 确认配置
         */
        void confirmConfig();

        /**
         * 获取以配置的文件的信息
         */
        void initConfig();
    }
}
